'''tzinfo timezone information for Atlantic/Azores.'''
from pytz.tzinfo import DstTzInfo
from pytz.tzinfo import memorized_datetime as d
from pytz.tzinfo import memorized_ttinfo as i

class Azores(DstTzInfo):
    '''Atlantic/Azores timezone definition. See datetime.tzinfo for details'''

    zone = 'Atlantic/Azores'

    _utc_transition_times = [
d(1,1,1,0,0,0),
d(1911,5,24,1,54,32),
d(1916,6,18,1,0,0),
d(1916,11,1,2,0,0),
d(1917,3,1,1,0,0),
d(1917,10,15,1,0,0),
d(1918,3,2,1,0,0),
d(1918,10,15,1,0,0),
d(1919,3,1,1,0,0),
d(1919,10,15,1,0,0),
d(1920,3,1,1,0,0),
d(1920,10,15,1,0,0),
d(1921,3,1,1,0,0),
d(1921,10,15,1,0,0),
d(1924,4,17,1,0,0),
d(1924,10,15,1,0,0),
d(1926,4,18,1,0,0),
d(1926,10,3,1,0,0),
d(1927,4,10,1,0,0),
d(1927,10,2,1,0,0),
d(1928,4,15,1,0,0),
d(1928,10,7,1,0,0),
d(1929,4,21,1,0,0),
d(1929,10,6,1,0,0),
d(1931,4,19,1,0,0),
d(1931,10,4,1,0,0),
d(1932,4,3,1,0,0),
d(1932,10,2,1,0,0),
d(1934,4,8,1,0,0),
d(1934,10,7,1,0,0),
d(1935,3,31,1,0,0),
d(1935,10,6,1,0,0),
d(1936,4,19,1,0,0),
d(1936,10,4,1,0,0),
d(1937,4,4,1,0,0),
d(1937,10,3,1,0,0),
d(1938,3,27,1,0,0),
d(1938,10,2,1,0,0),
d(1939,4,16,1,0,0),
d(1939,11,19,1,0,0),
d(1940,2,25,1,0,0),
d(1940,10,6,1,0,0),
d(1941,4,6,1,0,0),
d(1941,10,6,1,0,0),
d(1942,3,15,1,0,0),
d(1942,4,26,0,0,0),
d(1942,8,16,0,0,0),
d(1942,10,25,1,0,0),
d(1943,3,14,1,0,0),
d(1943,4,18,0,0,0),
d(1943,8,29,0,0,0),
d(1943,10,31,1,0,0),
d(1944,3,12,1,0,0),
d(1944,4,23,0,0,0),
d(1944,8,27,0,0,0),
d(1944,10,29,1,0,0),
d(1945,3,11,1,0,0),
d(1945,4,22,0,0,0),
d(1945,8,26,0,0,0),
d(1945,10,28,1,0,0),
d(1946,4,7,1,0,0),
d(1946,10,6,1,0,0),
d(1947,4,6,4,0,0),
d(1947,10,5,4,0,0),
d(1948,4,4,4,0,0),
d(1948,10,3,4,0,0),
d(1949,4,3,4,0,0),
d(1949,10,2,4,0,0),
d(1951,4,1,4,0,0),
d(1951,10,7,4,0,0),
d(1952,4,6,4,0,0),
d(1952,10,5,4,0,0),
d(1953,4,5,4,0,0),
d(1953,10,4,4,0,0),
d(1954,4,4,4,0,0),
d(1954,10,3,4,0,0),
d(1955,4,3,4,0,0),
d(1955,10,2,4,0,0),
d(1956,4,1,4,0,0),
d(1956,10,7,4,0,0),
d(1957,4,7,4,0,0),
d(1957,10,6,4,0,0),
d(1958,4,6,4,0,0),
d(1958,10,5,4,0,0),
d(1959,4,5,4,0,0),
d(1959,10,4,4,0,0),
d(1960,4,3,4,0,0),
d(1960,10,2,4,0,0),
d(1961,4,2,4,0,0),
d(1961,10,1,4,0,0),
d(1962,4,1,4,0,0),
d(1962,10,7,4,0,0),
d(1963,4,7,4,0,0),
d(1963,10,6,4,0,0),
d(1964,4,5,4,0,0),
d(1964,10,4,4,0,0),
d(1965,4,4,4,0,0),
d(1965,10,3,4,0,0),
d(1966,4,3,4,0,0),
d(1977,3,27,1,0,0),
d(1977,9,25,1,0,0),
d(1978,4,2,1,0,0),
d(1978,10,1,1,0,0),
d(1979,4,1,1,0,0),
d(1979,9,30,2,0,0),
d(1980,3,30,1,0,0),
d(1980,9,28,2,0,0),
d(1981,3,29,2,0,0),
d(1981,9,27,2,0,0),
d(1982,3,28,2,0,0),
d(1982,9,26,2,0,0),
d(1983,3,27,3,0,0),
d(1983,9,25,2,0,0),
d(1984,3,25,2,0,0),
d(1984,9,30,2,0,0),
d(1985,3,31,2,0,0),
d(1985,9,29,2,0,0),
d(1986,3,30,2,0,0),
d(1986,9,28,2,0,0),
d(1987,3,29,2,0,0),
d(1987,9,27,2,0,0),
d(1988,3,27,2,0,0),
d(1988,9,25,2,0,0),
d(1989,3,26,2,0,0),
d(1989,9,24,2,0,0),
d(1990,3,25,2,0,0),
d(1990,9,30,2,0,0),
d(1991,3,31,2,0,0),
d(1991,9,29,2,0,0),
d(1992,3,29,2,0,0),
d(1992,9,27,2,0,0),
d(1993,3,28,1,0,0),
d(1993,9,26,1,0,0),
d(1994,3,27,1,0,0),
d(1994,9,25,1,0,0),
d(1995,3,26,1,0,0),
d(1995,9,24,1,0,0),
d(1996,3,31,1,0,0),
d(1996,10,27,1,0,0),
d(1997,3,30,1,0,0),
d(1997,10,26,1,0,0),
d(1998,3,29,1,0,0),
d(1998,10,25,1,0,0),
d(1999,3,28,1,0,0),
d(1999,10,31,1,0,0),
d(2000,3,26,1,0,0),
d(2000,10,29,1,0,0),
d(2001,3,25,1,0,0),
d(2001,10,28,1,0,0),
d(2002,3,31,1,0,0),
d(2002,10,27,1,0,0),
d(2003,3,30,1,0,0),
d(2003,10,26,1,0,0),
d(2004,3,28,1,0,0),
d(2004,10,31,1,0,0),
d(2005,3,27,1,0,0),
d(2005,10,30,1,0,0),
d(2006,3,26,1,0,0),
d(2006,10,29,1,0,0),
d(2007,3,25,1,0,0),
d(2007,10,28,1,0,0),
d(2008,3,30,1,0,0),
d(2008,10,26,1,0,0),
d(2009,3,29,1,0,0),
d(2009,10,25,1,0,0),
d(2010,3,28,1,0,0),
d(2010,10,31,1,0,0),
d(2011,3,27,1,0,0),
d(2011,10,30,1,0,0),
d(2012,3,25,1,0,0),
d(2012,10,28,1,0,0),
d(2013,3,31,1,0,0),
d(2013,10,27,1,0,0),
d(2014,3,30,1,0,0),
d(2014,10,26,1,0,0),
d(2015,3,29,1,0,0),
d(2015,10,25,1,0,0),
d(2016,3,27,1,0,0),
d(2016,10,30,1,0,0),
d(2017,3,26,1,0,0),
d(2017,10,29,1,0,0),
d(2018,3,25,1,0,0),
d(2018,10,28,1,0,0),
d(2019,3,31,1,0,0),
d(2019,10,27,1,0,0),
d(2020,3,29,1,0,0),
d(2020,10,25,1,0,0),
d(2021,3,28,1,0,0),
d(2021,10,31,1,0,0),
d(2022,3,27,1,0,0),
d(2022,10,30,1,0,0),
d(2023,3,26,1,0,0),
d(2023,10,29,1,0,0),
d(2024,3,31,1,0,0),
d(2024,10,27,1,0,0),
d(2025,3,30,1,0,0),
d(2025,10,26,1,0,0),
d(2026,3,29,1,0,0),
d(2026,10,25,1,0,0),
d(2027,3,28,1,0,0),
d(2027,10,31,1,0,0),
d(2028,3,26,1,0,0),
d(2028,10,29,1,0,0),
d(2029,3,25,1,0,0),
d(2029,10,28,1,0,0),
d(2030,3,31,1,0,0),
d(2030,10,27,1,0,0),
d(2031,3,30,1,0,0),
d(2031,10,26,1,0,0),
d(2032,3,28,1,0,0),
d(2032,10,31,1,0,0),
d(2033,3,27,1,0,0),
d(2033,10,30,1,0,0),
d(2034,3,26,1,0,0),
d(2034,10,29,1,0,0),
d(2035,3,25,1,0,0),
d(2035,10,28,1,0,0),
d(2036,3,30,1,0,0),
d(2036,10,26,1,0,0),
d(2037,3,29,1,0,0),
d(2037,10,25,1,0,0),
        ]

    _transition_info = [
i(-6900,0,'HMT'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(0,7200,'AZOMT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(0,7200,'AZOMT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(0,7200,'AZOMT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(0,7200,'AZOMT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,3600,'AZOST'),
i(-7200,0,'AZOT'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(0,0,'WET'),
i(0,0,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
i(0,3600,'AZOST'),
i(-3600,0,'AZOT'),
        ]

Azores = Azores()

